package session.stateless;

import javax.ejb.Local;
import entity.Employee;
import java.util.List;

@Local
public interface EmployeeBeanLocal {
    public Long getEmployeeId(String userName); 
    public Employee getEmployee(String userName);
    public List<Employee> getEmployees();
    public Employee find(String userName, String password);
    
    public long createNewEmployee(String username, String password, String employeeName, String employeeNRIC, String employeeEmail, String employeeContactNumber, String employeeAddress, Long attempt, boolean activatedStatus, long positionId, boolean deletedStatus);
    
    public void updateEmployee(long employeeId, String username, String employeeName, String employeeNRIC, String employeeEmail, String employeeContactNumber, String employeeAddress, Long attempt, boolean activatedStatus, long positionId);
    public void updateEmployee(long employeeId, String employeeEmail, String employeeContactNumber, String employeeAddress);
    public void updatePassword(long employeeId, String newPassword);
    public void updateWrongLogin(String userName);
    
    public boolean isAdmin(long employeeId);
    public boolean isAdminViewable(long employeeId);
    public boolean isAdminCreatable(long employeeId);
    public boolean isAdminEditable(long employeeId);
    public boolean isAdminDeletable(long employeeId);
    public boolean isCRMStaff(long employeeId);
    public boolean isCRMStaffViewable(long employeeId);    
    public boolean isCRMStaffCreatable(long employeeId);
    public boolean isCRMStaffEditable(long employeeId);
    public boolean isCRMStaffDeletable(long employeeId);    
    public boolean isFRMStaff(long employeeId);
    public boolean isFRMStaffViewable(long employeeId);    
    public boolean isFRMStaffCreatable(long employeeId);
    public boolean isFRMStaffEditable(long employeeId);
    public boolean isFRMStaffDeletable(long employeeId);     
    public boolean isMRPStaff(long employeeId);
    public boolean isMRPStaffViewable(long employeeId);    
    public boolean isMRPStaffCreatable(long employeeId);
    public boolean isMRPStaffEditable(long employeeId);
    public boolean isMRPStaffDeletable(long employeeId);     
    public boolean isSCMStaff(long employeeId);
    public boolean isSCMStaffViewable(long employeeId);    
    public boolean isSCMStaffCreatable(long employeeId);
    public boolean isSCMStaffEditable(long employeeId);
    public boolean isSCMStaffDeletable(long employeeId);     
    public boolean isFirstLogin(long employeeId);    
    
    public void deleteEmployee(long employeeId);
    public void addContactList(long employeeId, long friendId);
    public void removeContactList(long employeeId, long friendId);
    public void resetPassword(long employeeId, String newPassword);
}
